Independent software vendors (ISVs) develop and sell software applications which are typically designed to run on one or more computer hardware or operating system platforms. Such software applications range from basic utility or productivity enhancing application to business process application for enterprises (e.g., customer relationship management (CRM), enterprise resource planning (ERP), automation tools, etc.). As cloud computing has become more pervasive, one such method of delivering software has been via the cloud using a software as a service (SaaS) based model. Using this delivery method, the ISVs may sell their software applications, or subscriptions to their software applications, through a public cloud or cloud marketplace.
While the cloud marketplace provides an online storefront for customer access to cloud-based services and software applications, a cloud service broker may be used to facilitate the transaction between the ISV and an end user, reseller, retailer, etc. While cloud service brokers serve as a platform to integrate the different cloud-based services and software applications into a single portal, they rely on web notifications to transmit and receive communications between highly distributed components, such as a payment gateway, 3rd party cloud services, fraud protection services, etc. Present web notification systems include cloud-based systems and self-hosted systems. However, each solution presents its own set of problems. For example, in cloud-based solutions, the possibility exists that sensitive information may have to be passed through external servers, which may not be legal in certain jurisdictions. In self-hosted solutions, for example, additional components are typically required to be installed to aggregate messages and achieve horizontal scalability, which can complicate server-side deployment of a web-based application.
In addition, one of the more challenging aspects of web notification systems is in achieving low per notification and per browser session overhead. For example, a server with 1,000 messages per second has roughly 1 ms to process each message, which generally requires an effective server side diff aggregation and batch delivering to clients. Accordingly, there exists a need for improvements in technologies for managing web notifications in client-server systems.